package cc.ttiot.utils;

import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.Objects;
import java.util.Properties;

/**
 * @Description: TODO
 * @Author WangSuheng
 * @Date 2021/10/4 1:32
 * @Version 1.0
 */
public class PropertiesUtils {

    //声明doorinfo.properties配置文件Properties对象
    private static final Properties props;

    static {
        String fileName = "doorinfo.properties";
        props = new Properties();
        try {
            //读取配置文件
            props.load(new InputStreamReader(Objects.requireNonNull(PropertiesUtils.class.getClassLoader().getResourceAsStream(fileName)), StandardCharsets.UTF_8));
        } catch (IOException e) {
            System.out.println(" doorinfo 配置文件读取异常");
        }
    }

    /***
     * @param key 键值
     * @return 返回获取结果
     */
    public static String getProperty(String key) {
        String value = props.getProperty(key.trim());
        //判断value是否为空，对于isBlank而言""， " "， "      "， null 都返回为空
        if (StringUtils.isBlank(value)) {
            //TODO 抛异常
            return null;
        }
        return value.trim();
    }

    /**
     * @param key          键值
     * @param defaultValue 如果未找到相应的value值，则以defaultValue代替
     * @return 返回获取结果
     */
    public static String getProperty(String key, String defaultValue) {
        String value = props.getProperty(key.trim());
        if (StringUtils.isBlank(value)) {
            value = defaultValue;
        }
        return value.trim();
    }
}
